﻿&НаКлиенте
Перем СчетчикТаймера,МаксСчетчиктаймера;

//начало текста модуля
&НаКлиенте
Перем Ванесса;

&НаКлиенте
Функция ДобавитьШагВМассивТестов(МассивТестов,Снипет,ИмяПроцедуры,ПредставлениеТеста = Неопределено,Транзакция = Неопределено,Параметр = Неопределено)
	Структура = Новый Структура;
	Структура.Вставить("Снипет",Снипет);
	Структура.Вставить("ИмяПроцедуры",ИмяПроцедуры);
	Структура.Вставить("ИмяПроцедуры",ИмяПроцедуры);
	Структура.Вставить("ПредставлениеТеста",ПредставлениеТеста);
	Структура.Вставить("Транзакция",Транзакция);
	Структура.Вставить("Параметр",Параметр);
	МассивТестов.Добавить(Структура);
КонецФункции

&НаКлиенте
Функция ПолучитьСписокТестов(КонтекстФреймворкаBDD) Экспорт
	Ванесса = КонтекстФреймворкаBDD;
	ЮнитТестированиеИмя = КонтекстФреймворкаBDD.МетаданныеИмя();
	ВсеТесты = Новый Массив;

	//описание параметров
	//ДобавитьШагВМассивТестов(ВсеТесты,Снипет,ИмяПроцедуры,ПредставлениеТеста,Транзакция,Параметр);

	ДобавитьШагВМассивТестов(ВсеТесты,"ЯОткрылВБраузереСайт(Парам01Строка)","ЯОткрылВБраузереСайт","Я открыл в браузере сайт ""https://www.sourcetreeapp.com/""");
	ДобавитьШагВМассивТестов(ВсеТесты,"ЯНажалНаКнопкуDownloadНаСайтеSourcetree()","ЯНажалНаКнопкуDownloadНаСайтеSourcetree","Я нажал на кнопку Download на сайте sourcetree");
	ДобавитьШагВМассивТестов(ВсеТесты,"ЯНажалНаКнопкуDownloadНаСайтеGit()","ЯНажалНаКнопкуDownloadНаСайтеGit","Я нажал на кнопку Download на сайте git");
	ДобавитьШагВМассивТестов(ВсеТесты,"ЯНажимаюНаКнопкуDownloadPython3x()","ЯНажимаюНаКнопкуDownloadPython3x","Я нажимаю на кнопку Download Python 3x");
	ДобавитьШагВМассивТестов(ВсеТесты,"ЯНажимаюНаКнопкуСохранить()","ЯНажимаюНаКнопкуСохранить","Я нажимаю на кнопку Сохранить");

	Возврат ВсеТесты;
КонецФункции

&НаКлиенте
Процедура ПередНачаломСценария() Экспорт
	Если НЕ БраузерПринудительноЗакрывался Тогда
		БраузерПринудительноЗакрывался = Истина;
		СтрокаКоманды = "TASKKILL /F /IM chrome.exe";
		КомандаСистемы(СтрокаКоманды);
		
		//ЗапуститьПриложение("https://github.com/silverbulleters/vanessa-behavior");
		ОткрытьСайт("https://github.com/silverbulleters/vanessa-behavior");
		
		Оболочка = Новый COMОбъект("Shell.Application");
		Оболочка.MinimizeAll();
	КонецЕсли;	 
КонецПроцедуры

&НаКлиенте
Процедура ПередОкончаниемСценария() Экспорт
	
КонецПроцедуры


&НаКлиенте
Процедура УдалитьСкаченныеФайлыПоМаске(Маска)
	WSH         = Новый COMobject("wscript.shell");
	USERPROFILE = WSH.ExpandEnvironmentStrings("%USERPROFILE%");	
	
	ГдеИскать = USERPROFILE + "\Downloads";
	
	//МассивМаска = Новый Массив;
	//МассивМаска.Добавить("GIT*.exe");
	//МассивМаска.Добавить("python*.exe");
	//МассивМаска.Добавить("SourceTreeSetup*.exe");
	
	Файлы = НайтиФайлы(ГдеИскать,Маска,Ложь);
	Для каждого Файл Из Файлы Цикл
		Сообщить("Удаляю файл: " + Файл.ПолноеИмя);
		УдалитьФайлы(Файл.ПолноеИмя);
	КонецЦикла;
КонецПроцедуры

&НаКлиенте
Процедура ТаймерОжидания()
	ОтключитьОбработчикОжидания("ТаймерОжидания");
	Ванесса.ПродолжитьВыполнениеШагов();
КонецПроцедуры

&НаКлиенте
Процедура ТаймерОжиданияSource()
	СчетчикТаймера = СчетчикТаймера + 1;
	Если СчетчикТаймера >= МаксСчетчиктаймера Тогда
		ОтключитьОбработчикОжидания("ТаймерОжиданияSource");
		Ванесса.ПродолжитьВыполнениеШагов();
	КонецЕсли;	 
КонецПроцедуры

&НаКлиенте
Процедура ОткрытьСайт(Адрес)
	Стр = """C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"" """ + Адрес + """ -start-maximized";
	ЗапуститьПриложение(Стр);
КонецПроцедуры



&НаСервере
Процедура ПроверитьИстину()
	юТест = ВнешниеОбработки.Создать(ЮнитТестированиеИмя);
	юТест.Проверить(Истина, "Ошибка проверки");
КонецПроцедуры
 

&НаКлиенте
//Я открыл в браузере сайт "https://www.sourcetreeapp.com/"
//@ЯОткрылВБраузереСайт(Парам01Строка)
Процедура ЯОткрылВБраузереСайт(АдресСайта) Экспорт
	//ВыполнитьКомандуОС(АдресСайта);
	ПроверитьИстину();
	ОткрытьСайт(АдресСайта);
	//ЗапуститьПриложение(АдресСайта);
	
	Ванесса.ЗапретитьВыполнениеШагов();
	ПодключитьОбработчикОжидания("ТаймерОжидания",2);
	//Если Найти(АдресСайта,"source") > 0 Тогда
	//	СчетчикТаймера = 0;
	//	МаксСчетчиктаймера = 10;
	//	ПодключитьОбработчикОжидания("ТаймерОжиданияSource",2);
	//Иначе	
	//	ПодключитьОбработчикОжидания("ТаймерОжидания",2);
	//КонецЕсли;	 
КонецПроцедуры

&НаКлиенте
Функция ВыполнитьКомандуОС(Стр)

	ИмяВременногоBAT = ПолучитьИмяВременногоФайла("bat");
	
	//ЗТ = Новый ЗаписьТекста(ИмяВременногоBAT,"UTF-8",,Истина); 
	ЗТ = Новый ЗаписьТекста(ИмяВременногоBAT,КодировкаТекста.ANSI,,Истина); 
	//ЗТ.ЗаписатьСтроку("set JAVA_EXE=""C:\Program Files (x86)\Java\jre6\bin\java.exe"""); 
	ЗТ.ЗаписатьСтроку(Стр); 
	ЗТ.Закрыть();
	
	WshShell = Новый COMОбъект("WScript.Shell");
	//Сообщить(Стр);
	Рез = WshShell.Run(ИмяВременногоBAT,0,-1);
	WshShell = Неопределено;
	Возврат Рез;
	//Сообщить("Рез=" + Рез);
	//Сообщить(ИмяВременногоBAT);
	//УдалитьФайлы(ИмяВременногоBAT);
КонецФункции

&НаКлиенте
Функция ПолучитьСтрокуВызоваSikuli()
	Возврат """C:\Program Files (x86)\Java\jre6\bin\java.exe"" -Xms64M -Xmx512M -Dfile.encoding=UTF-8 -Dpython.path=""C:\Program Files (x86)\Sikuli X\sikuli-script.jar/"" -jar ""C:\Program Files (x86)\Sikuli X\sikuli-ide.jar"" -r ";
	//Возврат "java -Xms64M -Xmx512M -Dfile.encoding=UTF-8 -Dpython.path=""C:\Program Files (x86)\Sikuli X\sikuli-script.jar/"" -jar ""C:\Program Files (x86)\Sikuli X\sikuli-ide.jar"" -r ";
КонецФункции	

&НаКлиенте
//Я нажал на кнопку Download на сайте sourcetree
//@ЯНажалНаКнопкуDownloadНаСайтеSourcetree()
Процедура ЯНажалНаКнопкуDownloadНаСайтеSourcetree() Экспорт
	УдалитьСкаченныеФайлыПоМаске("SourceTreeSetup*.exe");
	
	Команда = ПолучитьСтрокуВызоваSikuli() + Ванесса.Объект.КаталогИнструментов + "\tools\Sikuli\SourceTree.sikuli";
	Рез = ВыполнитьКомандуОС(Команда);
	Ванесса.ПроверитьРавенство(Рез,0,"Был клик на кнопку большую синюю кнопку ""Скачать"".");
	//КомандаСистемы(Команда + " > h:\temp\111.txt");
	
	
	Ванесса.ЗапретитьВыполнениеШагов();
	ПодключитьОбработчикОжидания("ТаймерОжидания",3);
КонецПроцедуры

&НаКлиенте
//Я нажал на кнопку Download на сайте git
//@ЯНажалНаКнопкуDownloadНаСайтеGit()
Процедура ЯНажалНаКнопкуDownloadНаСайтеGit() Экспорт
	УдалитьСкаченныеФайлыПоМаске("GIT*.exe");
	
	
	//Команда = """C:\Program Files (x86)\Java\jre6\bin\java.exe"" -Xms64M -Xmx512M -Dfile.encoding=UTF-8 -Dpython.path=""C:\Program Files (x86)\Sikuli X\sikuli-script.jar/"" -jar ""C:\Program Files (x86)\Sikuli X\sikuli-ide.jar"" -r " + Ванесса.Объект.КаталогИнструментов + "\tools\Sikuli\Git.sikuli";
	Команда = ПолучитьСтрокуВызоваSikuli() + Ванесса.Объект.КаталогИнструментов + "\tools\Sikuli\Git.sikuli";
	Рез = ВыполнитьКомандуОС(Команда);
	Ванесса.ПроверитьРавенство(Рез,0,"Был клик на кнопку ""Скачать"".");
	
	Ванесса.ЗапретитьВыполнениеШагов();
	ПодключитьОбработчикОжидания("ТаймерОжидания",3);
КонецПроцедуры

&НаКлиенте
//Я нажимаю на кнопку Сохранить
//@ЯНажимаюНаКнопкуСохранить()
Процедура ЯНажимаюНаКнопкуСохранить() Экспорт
	//Команда = """C:\Program Files (x86)\Java\jre6\bin\java.exe"" -Xms64M -Xmx512M -Dfile.encoding=UTF-8 -Dpython.path=""C:\Program Files (x86)\Sikuli X\sikuli-script.jar/"" -jar ""C:\Program Files (x86)\Sikuli X\sikuli-ide.jar"" -r " + Ванесса.Объект.КаталогИнструментов + "\tools\Sikuli\ClickSaveFF.sikuli";
	Команда = ПолучитьСтрокуВызоваSikuli() + Ванесса.Объект.КаталогИнструментов + "\tools\Sikuli\ClickSaveFF.sikuli";
	Рез = ВыполнитьКомандуОС(Команда);
	Ванесса.ПроверитьРавенство(Рез,0,"Был клик на кнопку ""Сохранить"" firefox.");
	
	Ванесса.ЗапретитьВыполнениеШагов();
	ПодключитьОбработчикОжидания("ТаймерОжидания",2);
КонецПроцедуры


&НаКлиенте
//Я нажимаю на кнопку Download Python 3x
//@ЯНажимаюНаКнопкуDownloadPython3x()
Процедура ЯНажимаюНаКнопкуDownloadPython3x() Экспорт
	УдалитьСкаченныеФайлыПоМаске("python*.exe");
	
	//Команда = """C:\Program Files (x86)\Java\jre6\bin\java.exe"" -Xms64M -Xmx512M -Dfile.encoding=UTF-8 -Dpython.path=""C:\Program Files (x86)\Sikuli X\sikuli-script.jar/"" -jar ""C:\Program Files (x86)\Sikuli X\sikuli-ide.jar"" -r " + Ванесса.Объект.КаталогИнструментов + "\tools\Sikuli\Python.sikuli";
	Команда = ПолучитьСтрокуВызоваSikuli() + Ванесса.Объект.КаталогИнструментов + "\tools\Sikuli\Python.sikuli";
	Рез = ВыполнитьКомандуОС(Команда);
	Ванесса.ПроверитьРавенство(Рез,0,"Был клик на кнопку ""Скачать"".");
	
	Ванесса.ЗапретитьВыполнениеШагов();
	ПодключитьОбработчикОжидания("ТаймерОжидания",3);
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	ПодключитьОбработчикОжидания("ОжиданиеЗапускТеста", 1, Истина);
	
КонецПроцедуры

&НаКлиенте
Процедура ОжиданиеЗапускТеста()
	
	
	ФормуНашли = Ложь;
	ФормаVanessa = Неопределено;
	
	Окна = ПолучитьОкна();
	Для каждого Окн Из Окна Цикл
		Если ТипЗнч(Окн) = Тип("ОкноКлиентскогоПриложения") Тогда
			Если Найти(Строка(Окн.Заголовок), "Vanessa")>0 Тогда
				ФормуНашли = Истина;
				ФормаVanessa = Окн.ПолучитьСодержимое();
			КонецЕсли;
		КонецЕсли;
		
	КонецЦикла;
	
	Если ФормуНашли Тогда
		
		ФормаVanessa.ДобавитьВнешнийСписокПроцедур(ПолучитьСписокТестов(ФормаVanessa), ЭтаФорма.УникальныйИдентификатор, ЭтаФорма);
		Сообщить("Подключились можно отлаживать");
		
	КонецЕсли;
	
КонецПроцедуры

//

//окончание текста модуля